{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "name": "Titanic.ipynb",
      "version": "0.3.2",
      "provenance": []
    },
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3"
    }
  },
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "cbQZA9bSdogk",
        "colab_type": "text"
      },
      "source": [
        "# Titanic Survival Prediction Using Machine Learning\n",
        "\n",
        "![titanic_image](https://upload.wikimedia.org/wikipedia/commons/4/42/Titanic_Sn1912.jpg)"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "0tviuLKm_KeK",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "#Description: This program predicts if a passenger will survive on the titanic\n",
        "#\n",
        "#Resources: https://towardsdatascience.com/predicting-the-survival-of-titanic-passengers-30870ccc7e8\n",
        "#           http://campus.lakeforest.edu/frank/FILES/MLFfiles/Bio150/Titanic/TitanicMETA.pdf\n",
        "#           https://jakevdp.github.io/PythonDataScienceHandbook/03.09-pivot-tables.html"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "cbEnQ6FrOaxL",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "#Import Libraries\n",
        "import numpy as np\n",
        "import pandas as pd\n",
        "import seaborn as sns\n",
        "import matplotlib.pyplot as plt\n"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "CEZqprg4OhM4",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 355
        },
        "outputId": "dc6e65d0-9631-4429-ff67-46822886ae09"
      },
      "source": [
        "#Load the data\n",
        "titanic = sns.load_dataset('titanic')\n",
        "#Print the first 10 rows of data\n",
        "titanic.head(10)"
      ],
      "execution_count": 189,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>survived</th>\n",
              "      <th>pclass</th>\n",
              "      <th>sex</th>\n",
              "      <th>age</th>\n",
              "      <th>sibsp</th>\n",
              "      <th>parch</th>\n",
              "      <th>fare</th>\n",
              "      <th>embarked</th>\n",
              "      <th>class</th>\n",
              "      <th>who</th>\n",
              "      <th>adult_male</th>\n",
              "      <th>deck</th>\n",
              "      <th>embark_town</th>\n",
              "      <th>alive</th>\n",
              "      <th>alone</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>0</td>\n",
              "      <td>3</td>\n",
              "      <td>male</td>\n",
              "      <td>22.0</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>7.2500</td>\n",
              "      <td>S</td>\n",
              "      <td>Third</td>\n",
              "      <td>man</td>\n",
              "      <td>True</td>\n",
              "      <td>NaN</td>\n",
              "      <td>Southampton</td>\n",
              "      <td>no</td>\n",
              "      <td>False</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>1</td>\n",
              "      <td>1</td>\n",
              "      <td>female</td>\n",
              "      <td>38.0</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>71.2833</td>\n",
              "      <td>C</td>\n",
              "      <td>First</td>\n",
              "      <td>woman</td>\n",
              "      <td>False</td>\n",
              "      <td>C</td>\n",
              "      <td>Cherbourg</td>\n",
              "      <td>yes</td>\n",
              "      <td>False</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>1</td>\n",
              "      <td>3</td>\n",
              "      <td>female</td>\n",
              "      <td>26.0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>7.9250</td>\n",
              "      <td>S</td>\n",
              "      <td>Third</td>\n",
              "      <td>woman</td>\n",
              "      <td>False</td>\n",
              "      <td>NaN</td>\n",
              "      <td>Southampton</td>\n",
              "      <td>yes</td>\n",
              "      <td>True</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>1</td>\n",
              "      <td>1</td>\n",
              "      <td>female</td>\n",
              "      <td>35.0</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>53.1000</td>\n",
              "      <td>S</td>\n",
              "      <td>First</td>\n",
              "      <td>woman</td>\n",
              "      <td>False</td>\n",
              "      <td>C</td>\n",
              "      <td>Southampton</td>\n",
              "      <td>yes</td>\n",
              "      <td>False</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>0</td>\n",
              "      <td>3</td>\n",
              "      <td>male</td>\n",
              "      <td>35.0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>8.0500</td>\n",
              "      <td>S</td>\n",
              "      <td>Third</td>\n",
              "      <td>man</td>\n",
              "      <td>True</td>\n",
              "      <td>NaN</td>\n",
              "      <td>Southampton</td>\n",
              "      <td>no</td>\n",
              "      <td>True</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>5</th>\n",
              "      <td>0</td>\n",
              "      <td>3</td>\n",
              "      <td>male</td>\n",
              "      <td>NaN</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>8.4583</td>\n",
              "      <td>Q</td>\n",
              "      <td>Third</td>\n",
              "      <td>man</td>\n",
              "      <td>True</td>\n",
              "      <td>NaN</td>\n",
              "      <td>Queenstown</td>\n",
              "      <td>no</td>\n",
              "      <td>True</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>6</th>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>male</td>\n",
              "      <td>54.0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>51.8625</td>\n",
              "      <td>S</td>\n",
              "      <td>First</td>\n",
              "      <td>man</td>\n",
              "      <td>True</td>\n",
              "      <td>E</td>\n",
              "      <td>Southampton</td>\n",
              "      <td>no</td>\n",
              "      <td>True</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>7</th>\n",
              "      <td>0</td>\n",
              "      <td>3</td>\n",
              "      <td>male</td>\n",
              "      <td>2.0</td>\n",
              "      <td>3</td>\n",
              "      <td>1</td>\n",
              "      <td>21.0750</td>\n",
              "      <td>S</td>\n",
              "      <td>Third</td>\n",
              "      <td>child</td>\n",
              "      <td>False</td>\n",
              "      <td>NaN</td>\n",
              "      <td>Southampton</td>\n",
              "      <td>no</td>\n",
              "      <td>False</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>8</th>\n",
              "      <td>1</td>\n",
              "      <td>3</td>\n",
              "      <td>female</td>\n",
              "      <td>27.0</td>\n",
              "      <td>0</td>\n",
              "      <td>2</td>\n",
              "      <td>11.1333</td>\n",
              "      <td>S</td>\n",
              "      <td>Third</td>\n",
              "      <td>woman</td>\n",
              "      <td>False</td>\n",
              "      <td>NaN</td>\n",
              "      <td>Southampton</td>\n",
              "      <td>yes</td>\n",
              "      <td>False</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>9</th>\n",
              "      <td>1</td>\n",
              "      <td>2</td>\n",
              "      <td>female</td>\n",
              "      <td>14.0</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>30.0708</td>\n",
              "      <td>C</td>\n",
              "      <td>Second</td>\n",
              "      <td>child</td>\n",
              "      <td>False</td>\n",
              "      <td>NaN</td>\n",
              "      <td>Cherbourg</td>\n",
              "      <td>yes</td>\n",
              "      <td>False</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>"
            ],
            "text/plain": [
              "   survived  pclass     sex   age  ...  deck  embark_town  alive  alone\n",
              "0         0       3    male  22.0  ...   NaN  Southampton     no  False\n",
              "1         1       1  female  38.0  ...     C    Cherbourg    yes  False\n",
              "2         1       3  female  26.0  ...   NaN  Southampton    yes   True\n",
              "3         1       1  female  35.0  ...     C  Southampton    yes  False\n",
              "4         0       3    male  35.0  ...   NaN  Southampton     no   True\n",
              "5         0       3    male   NaN  ...   NaN   Queenstown     no   True\n",
              "6         0       1    male  54.0  ...     E  Southampton     no   True\n",
              "7         0       3    male   2.0  ...   NaN  Southampton     no  False\n",
              "8         1       3  female  27.0  ...   NaN  Southampton    yes  False\n",
              "9         1       2  female  14.0  ...   NaN    Cherbourg    yes  False\n",
              "\n",
              "[10 rows x 15 columns]"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 189
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "SluTxDm-Rrp3",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 35
        },
        "outputId": "cf4d2878-2a46-40d9-c247-9449fdf8fd9a"
      },
      "source": [
        "#Count the number of rows and columns in the data set\n",
        "titanic.shape"
      ],
      "execution_count": 190,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "(891, 15)"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 190
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "ZOAXSgmQ9Au9",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 294
        },
        "outputId": "4c284556-b33c-4981-a7d6-083119a1543a"
      },
      "source": [
        "#Get some statistics from our data set, count, mean standard deviation etc.\n",
        "titanic.describe()"
      ],
      "execution_count": 191,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>survived</th>\n",
              "      <th>pclass</th>\n",
              "      <th>age</th>\n",
              "      <th>sibsp</th>\n",
              "      <th>parch</th>\n",
              "      <th>fare</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>count</th>\n",
              "      <td>891.000000</td>\n",
              "      <td>891.000000</td>\n",
              "      <td>714.000000</td>\n",
              "      <td>891.000000</td>\n",
              "      <td>891.000000</td>\n",
              "      <td>891.000000</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>mean</th>\n",
              "      <td>0.383838</td>\n",
              "      <td>2.308642</td>\n",
              "      <td>29.699118</td>\n",
              "      <td>0.523008</td>\n",
              "      <td>0.381594</td>\n",
              "      <td>32.204208</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>std</th>\n",
              "      <td>0.486592</td>\n",
              "      <td>0.836071</td>\n",
              "      <td>14.526497</td>\n",
              "      <td>1.102743</td>\n",
              "      <td>0.806057</td>\n",
              "      <td>49.693429</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>min</th>\n",
              "      <td>0.000000</td>\n",
              "      <td>1.000000</td>\n",
              "      <td>0.420000</td>\n",
              "      <td>0.000000</td>\n",
              "      <td>0.000000</td>\n",
              "      <td>0.000000</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>25%</th>\n",
              "      <td>0.000000</td>\n",
              "      <td>2.000000</td>\n",
              "      <td>20.125000</td>\n",
              "      <td>0.000000</td>\n",
              "      <td>0.000000</td>\n",
              "      <td>7.910400</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>50%</th>\n",
              "      <td>0.000000</td>\n",
              "      <td>3.000000</td>\n",
              "      <td>28.000000</td>\n",
              "      <td>0.000000</td>\n",
              "      <td>0.000000</td>\n",
              "      <td>14.454200</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>75%</th>\n",
              "      <td>1.000000</td>\n",
              "      <td>3.000000</td>\n",
              "      <td>38.000000</td>\n",
              "      <td>1.000000</td>\n",
              "      <td>0.000000</td>\n",
              "      <td>31.000000</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>max</th>\n",
              "      <td>1.000000</td>\n",
              "      <td>3.000000</td>\n",
              "      <td>80.000000</td>\n",
              "      <td>8.000000</td>\n",
              "      <td>6.000000</td>\n",
              "      <td>512.329200</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>"
            ],
            "text/plain": [
              "         survived      pclass         age       sibsp       parch        fare\n",
              "count  891.000000  891.000000  714.000000  891.000000  891.000000  891.000000\n",
              "mean     0.383838    2.308642   29.699118    0.523008    0.381594   32.204208\n",
              "std      0.486592    0.836071   14.526497    1.102743    0.806057   49.693429\n",
              "min      0.000000    1.000000    0.420000    0.000000    0.000000    0.000000\n",
              "25%      0.000000    2.000000   20.125000    0.000000    0.000000    7.910400\n",
              "50%      0.000000    3.000000   28.000000    0.000000    0.000000   14.454200\n",
              "75%      1.000000    3.000000   38.000000    1.000000    0.000000   31.000000\n",
              "max      1.000000    3.000000   80.000000    8.000000    6.000000  512.329200"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 191
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "2fflY1ujQzhF",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 69
        },
        "outputId": "890fb2de-9695-4634-958e-b523a6ea0d2d"
      },
      "source": [
        "#Get a count of the number of survivors \n",
        "titanic['survived'].value_counts()"
      ],
      "execution_count": 192,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "0    549\n",
              "1    342\n",
              "Name: survived, dtype: int64"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 192
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "0DtBtRQWRCbf",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 301
        },
        "outputId": "eb9bad15-9524-4ad4-bd8f-a986c36b7dd9"
      },
      "source": [
        "#Visualize the count of number of survivors\n",
        "sns.countplot(titanic['survived'],label=\"Count\")"
      ],
      "execution_count": 193,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "<matplotlib.axes._subplots.AxesSubplot at 0x7f696dda9198>"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 193
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "oZCCnufHVH4t",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 471
        },
        "outputId": "3fc1a7ed-5327-4f24-9d96-bdf8b89174a0"
      },
      "source": [
        "# Visualize the count of survivors for columns 'who', 'sex', 'pclass', 'sibsp', 'parch', and 'embarked'\n",
        "cols = ['who', 'sex', 'pclass', 'sibsp', 'parch', 'embarked']\n",
        "\n",
        "n_rows = 2\n",
        "n_cols = 3\n",
        "\n",
        "#Number of rows/columns of the subplot grid and the figure size of each graph\n",
        "#NOTE: This returns a Figure (fig) and an Axes Object (axs)\n",
        "fig, axs = plt.subplots(n_rows, n_cols, figsize=(n_cols*3.2,n_rows*3.2))\n",
        "\n",
        "for r in range(0,n_rows):\n",
        "    for c in range(0,n_cols):  \n",
        "        \n",
        "        i = r*n_cols+ c #index to go through the number of columns       \n",
        "        ax = axs[r][c] #Show where to position each subplot\n",
        "        sns.countplot(titanic[cols[i]], hue=titanic[\"survived\"], ax=ax)\n",
        "        ax.set_title(cols[i])\n",
        "        ax.legend(title=\"survived\", loc='upper right') \n",
        "        \n",
        "plt.tight_layout()   #tight_layout automatically adjusts subplot params so that the subplot(s) fits in to the figure area"
      ],
      "execution_count": 194,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\nTFYlSZLUWSarkiRJ6iyTVUmSJHWWyaokSZI6y2RVkiRJnWWyKkmSpM4yWZUkSVJnmaxKkiSps0xW\nJUmS1Fkmq5IkSeqsLSddgWlz3xn79XXcnqetGXFNJEmSlr6Rtawm+VCSB5Pc1rNvpyRXJLmr/XPH\ndn+SvCfJ3UluTXLgqOolSZKkpWOUwwDOBY6et+9UYHVV7QWsbt8DvBzYq32tBD4wwnpJkiRpiRhZ\nslpVXwC+M2/3scB57fZ5wKt69p9fjWuAHZLsNqq6SZIkaWkY9wNWu1bV2nb7m8Cu7fbuwP09xz3Q\n7pMkaSo4PE4azMRmA6iqAmqx5yVZmeSGJDesW7duBDWTJGkkzsXhcdKijXs2gG8l2a2q1rbd/A+2\n+78OLOs5bo923waqahWwCmDFihWLTnYHddC/P7+v4y7ZfsQVkRYpyYeAVwAPVtW+7b6dgIuA5cC9\nwOuq6uEkAc4GjgEeA06qqpsmUW9p2lTVF5Isn7f7WOCwdvs84Crg7fQMjwOuSbLD3PfneGordce4\nW1Y/DZzYbp8IXNqz/4S22+NQ4HsGpDQ052JrjtRVDo+TFjDKqasuAK4G9k7yQJI3AWcCRyW5Cziy\nfQ9wGXAPcDdwDvDmUdVLmjU+7CgtDQ6PkzZuZMMAqup3n+ajIzZybAEnj6oukjaw2NacDXo6kqyk\naX1lzz33HF1Npem2ZIfHSePiClbSjKuqSrLoLzi/IKWhmBsedyYbDo97S5ILgUNweNxE9bs65SBc\n0XJhJqvSbNrs1hxJi9MOjzsM2DnJA8A7aJLUj7dD5b4GvK49/DKaBx3vpnnY8Y1jr7DUESar0myy\nNUcaM4fHSYMxWZWmnK05kqSlzGRVmnK25kiSlrKJrWAlSZIkLcRkVZIkSZ3lMABJkrTk9bss+iBc\nSn2ybFmVJElSZ5msSpIkqbNMViVJktRZJquSJEnqLB+wkjSV+l3L23W5JanbbFmVJElSZ5msSpIk\nqbNMViVJktRZjlmVtKT0O/G3k3hL0nQwWZUkSVoiRrlS141nnTCya28OhwFIkiSps0xWJUmS1FkO\nA5CkefofF3vWgsc4j6skbR5bViVJktRZJquSJEnqLJNVSZIkdZZjViVJksR9Z+w3smtvzvh9W1Yl\nSZLUWSarkiRJ6iyTVUmSJHWWyaokSZI6ywesOqTfici7unYvTMc9SJKk7jBZXYL6fVpvY0/e9ZNM\nmkhKkqSu6NQwgCRHJ/lKkruTnDrp+kizyliUusFYlDrUsppkC+B9wFHAA8D1ST5dVXdMtmaaRbPc\nAm0sSt1gLEqNziSrwMHA3VV1D0CSC4FjAYNyzDZnmME4OC525IzFKTCOODEWR85YlOhWsro7cH/P\n+weAQyZUF41Y1xPiGWcsjli/Sd4l25/V13Fdj5N+4n3QMfYw1cmwsSgBqapJ1wGAJMcBR1fVH7Tv\n3wAcUlVvmXfcSmBl+3Zv4CuLKGZn4KEhVHfay5iGexhHGYNc/xerapdRVGZYjMVOlTEN9zCOMozF\nwWNxc43j308XeJ+j0Vccdqll9evAsp73e7T71lNVq4BVgxSQ5IaqWjFY9WanjGm4h3GUMY57mBBj\nsSNlTMM9jKMMY3HwWNxcU/yzX4/3OVldmg3gemCvJM9P8kzg9cCnJ1wnaRYZi1I3GIsSHWpZrarH\nk7wF+CywBfChqrp9wtWSZo6xKHWDsSg1OpOsAlTVZcBlIyxiHN0k01DGNNzDOMqYSLfbOBiLnSlj\nGu5hHGUYi5MztT/7ebzPCerMA1aSJEnSfF0asypJkiStZ2aS1VEvWZfkQ0keTHLbsK/dXn9ZkiuT\n3JHk9iSnjKCMrZNcl+SWtox3DruMtpwtknwpyWdGdP17k6xJcnOSG0ZUxh+1P6PbklyQZOtRlDON\njMW+yjAW+y9jhySfSPLlJHcmefEoytGGkvyn9t/nre3f8dTNAZvkuUkuTPL/ktyY5LIk/3TS9Rqm\nJHskuTTJXUnuSfLeJD836Xr1molktWfJupcD+wC/m2SfIRdzLnD0kK/Z63Hgj6tqH+BQ4OQR3MOP\ngcOr6oXAAcDRSQ4dchkApwB3juC6vV5WVQeMYgqOJLsDbwVWVNW+NA8+vH7Y5UwjY7FvxmL/zgb+\nvqp+BXgho78fAe0vBa8ADqyq/YEjWX8BgyUvSYBLgKuq6per6iDgT4BdJ1uz4Wnv8ZPAp6pqL2Av\nYBvgzydasXlmIlmlZ8m6qvoJMLdk3dBU1ReA7wzzmvOuv7aqbmq3H6H5D3n3IZdRVfVo+3ar9jXU\nQc1J9gB+G/ibYV53ArYEtkmyJfAs4BsTrs9SYSz2V4ax2IckzwF+A/ggQFX9pKq+O9lazYzdgIeq\n6scAVfVQVU3b/4MvA35aVf9jbkdV3VJV/3eCdRq2w4EfVdWHAarqCeCPgBOSbDfRmvWYlWR1Y0vW\nDfXLZZySLAdeBFw7gmtvkeRm4EHgiqoadhl/BfwH4MkhX7dXAZe3XTYrFzx6sRev+jrwF8B9wFrg\ne1V1+bDLmVLGYv/XNhYX9nxgHfDhdjjD3yTZdgTlaEOXA8uSfDXJ+5P85qQrNAL7AjdOuhIj9gLm\n3WNVfR+4F/gnk6jQxsxKsjo12t90Lgbe1v6DGqqqeqKqDqBZKeXgJPsO69pJXgE8WFWjDv5fq6oD\nabqaT07yG8O8eJIdaVoDnw88D9g2yfHDLEPdZyz2ZaSxSNPDcSDwgap6EfADYOjjoLWhtuX/IJpl\nXtcBFyU5aaKV0tSalWS1ryXrui7JVjRfjh+rqk+Osqy2K+1Khjv276XAK5PcS9P9e3iSjw7x+sDP\nWj6pqgdpxhsdPOQijgT+sarWVdVPacb7vGTIZUwrY3GRjMVNegB4oKfV+RM0yavGoP2F6qqqegfw\nFuBfTrpOQ3Y7TUI+ze5g3j0meTbwXOArE6nRRsxKsrrkl6xrB0F/ELizqv5yRGXskmSHdnsb4Cjg\ny8O6flX9SVXtUVXLaf4OPldVQ22RTLJtku3ntoHfAob9VPh9wKFJntX+vRyBD3X0y1jsrwxjsQ9V\n9U3g/iR7t7uOoPny1Ygl2TvJXj27DgC+Nqn6jMjngJ/rHcKSZP8kvz7BOg3bauBZSU6Anz0E+27g\nvVX1w4nWrMdMJKtV9TjNb32fpUkqPj7sJeuSXABcDeyd5IEkbxrm9WlaQt5A0wJyc/s6Zshl7AZc\nmeRWmqTiiqoayZQ2I7Qr8MUktwDXAX9XVX8/zALaVpxPADcBa2jiqJOrfnSNsdg3Y7F/fwh8rP1Z\nHQD8lxGUoQ1tB5yXZgq3W2lm9zh9slUarmpWTXo1cGQ7ddXtwH8FvjnZmg1Pzz0el+Qu4NvAk1X1\nZ5Ot2fpcwUqSJEkkeQlwAfDquVlPusBkVZIkSZ01E8MAJEmStDSZrEqSJKmzTFYlSZLUWSarkiRJ\n6iyT1RnVLku4T7v96ELHS+qeJMuTDHseYWlmJDkpyXs38xr3Jtl5UuXPgi0nXQFNRlX9waTrIKk/\nSbZs56iV1CHtJPoaMVtWZ0C7kszfJbklyW1JfifJVUlW9Bzz35PcnmR1kl3afW+dm/A5yYXtvtOT\nfCTJ1UnuSvKvJ3Vf0lLStoJ+OcnHktyZ5BPtKminJbm+jc1V7QpZtDH6V0luAE5JsmuSS9o4vqWd\nDxFgiyTntPF7ebvilTRTkhyf5Lp2kY7/mWSLJI8mOauNjf+T5OA2ru5J8sqe05e1++9K8o6ea34q\nyY3t+b2rWD2a5N3tghcv7tm/TZL/Pfe9uLE6tfvfmOSrSa6jWWRECzBZnQ1HA9+oqhdW1b7A/FVk\ntgVuqKoXAJ8H5oL1VOBFVbU/8G97jt8fOJwmSE9L8ryR1l6aHnsD76+qXwW+D7yZZlnDf9bG5jbA\nK3qOf2ZVraiqdwPvAT5fVS8EDqRZtxxgL+B9bfx+l+lbn13apCS/CvwO8NKqOgB4AvhXNN9tn2tj\n4xHgXTRLF78aOKPnEgfTxM3+wGt7GnJ+v6oOAlYAb03y8+3+bYFr2+/UL7b7tgP+Frigqs55ujol\n2Q14J02S+ms0K39pASars2ENcFSS/5bk16vqe/M+fxK4qN3+KE0AAdxKs4zh8UBvF+SlVfXDqnoI\nuJIm0CUt7P6q+od2ey7WXpbk2iRraH4JfEHP8Rf1bB8OfACgqp7oieN/rKqb2+0bgeWjqrzUUUcA\nBwHXJ7m5ff9LwE94qnFmDc0vez9tt5f3nH9FVX27qn4IfJKnvgPf2raeXgMso/nFEJrE8+J5dbgU\n+HBVnb9AnQ4BrqqqdVX1E9aPcT0Nk9UZUFVfpWmJWQO8K8lpC53S/vnbwPvac69PsuW8z+cfL2nT\nNhY77weOq6r9gHOArXs+/0Ef1/xxz/YT+CyCZk+A86rqgPa1d1WdDvy0nlqm80naWKmqJ1k/TjaI\nyySHAUcCL257M77EU7H5o6p6Yt45/wAcPTeMZxN10gBMVmdA203/WFV9FDiLJvns9QzguHb794Av\nJnkGsKyqrgTeDjyHppsD4NgkW7ddIocB14/4FqRpsWeSuTFuvwfMdSE+lGQ7norDjVkN/DtoHupI\n8pzRVVNaUlYDxyX5BYAkOyX5xUWcf1R7zjbAq2gSz+cAD1fVY0l+BTh0gWucBjxM08CzqTpdC/xm\nkp9PshXw2kXUc2aZrM6G/YDr2q6Id9CM2+n1A+Dgdgqcw2nG8mwBfLTtmvwS8J6q+m57/K003f/X\nAH9aVd8Ywz1I0+ArwMlJ7gR2pOnWPwe4Dfgsm/7F7xSaIQNraLr7HesmAVV1B/CfgcuT3ApcAey2\niEtcR9OtfytwcVXdQDN8YMs2Vs+k+b5byCnANkn+/OnqVFVrgdOBq2mS4jsXUc+ZladayKWFJTkd\neLSq/mLSdZGWkiTLgc+0D1JJkvpky6okSZI6y5ZVSZIkdZYtq5IkSeosk1VJkiR1lsmqJEmSOstk\nVZIkSZ1lsipJkqTOMlmVJElSZ/1/mq4Q0NgL8eoAAAAASUVORK5CYII=\n",
            "text/plain": [
              "<Figure size 691.2x460.8 with 6 Axes>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "Buc40ozLO78X",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 141
        },
        "outputId": "5bd58f2e-877e-4298-d009-03899882191f"
      },
      "source": [
        "#Look at survival rate by sex\n",
        "titanic.groupby('sex')[['survived']].mean()"
      ],
      "execution_count": 195,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>survived</th>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>sex</th>\n",
              "      <th></th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>female</th>\n",
              "      <td>0.742038</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>male</th>\n",
              "      <td>0.188908</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>"
            ],
            "text/plain": [
              "        survived\n",
              "sex             \n",
              "female  0.742038\n",
              "male    0.188908"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 195
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "e3bf9YzTPToQ",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 141
        },
        "outputId": "d6d46335-2964-4d7a-89ca-dc66000f4479"
      },
      "source": [
        "#Look at survival rate by sex and class\n",
        "titanic.pivot_table('survived', index='sex', columns='class')"
      ],
      "execution_count": 196,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th>class</th>\n",
              "      <th>First</th>\n",
              "      <th>Second</th>\n",
              "      <th>Third</th>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>sex</th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>female</th>\n",
              "      <td>0.968085</td>\n",
              "      <td>0.921053</td>\n",
              "      <td>0.500000</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>male</th>\n",
              "      <td>0.368852</td>\n",
              "      <td>0.157407</td>\n",
              "      <td>0.135447</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>"
            ],
            "text/plain": [
              "class      First    Second     Third\n",
              "sex                                 \n",
              "female  0.968085  0.921053  0.500000\n",
              "male    0.368852  0.157407  0.135447"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 196
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "dL3VNwf1yc6N",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 301
        },
        "outputId": "eb376280-d3d3-48ef-aef6-02fefb871381"
      },
      "source": [
        "#Look at survival rate by sex and class visually\n",
        "titanic.pivot_table('survived', index='sex', columns='class').plot()"
      ],
      "execution_count": 197,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "<matplotlib.axes._subplots.AxesSubplot at 0x7f696dd2b0b8>"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 197
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "coHb6LIBhTHc",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 301
        },
        "outputId": "98de237a-12e9-432e-b6f8-a245f6bc04fc"
      },
      "source": [
        "#Plot the survival rate of each class.\n",
        "sns.barplot(x='class', y='survived', data=titanic)"
      ],
      "execution_count": 198,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "<matplotlib.axes._subplots.AxesSubplot at 0x7f69736c58d0>"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 198
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "fEwmHRyHTfr-",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 202
        },
        "outputId": "542bb8cb-aef4-48a7-aea1-e2af2f3ee2ba"
      },
      "source": [
        "#Look at survival rate by sex, age and class\n",
        "age = pd.cut(titanic['age'], [0, 18, 80])\n",
        "titanic.pivot_table('survived', ['sex', age], 'class')"
      ],
      "execution_count": 199,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>class</th>\n",
              "      <th>First</th>\n",
              "      <th>Second</th>\n",
              "      <th>Third</th>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>sex</th>\n",
              "      <th>age</th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th rowspan=\"2\" valign=\"top\">female</th>\n",
              "      <th>(0, 18]</th>\n",
              "      <td>0.909091</td>\n",
              "      <td>1.000000</td>\n",
              "      <td>0.511628</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>(18, 80]</th>\n",
              "      <td>0.972973</td>\n",
              "      <td>0.900000</td>\n",
              "      <td>0.423729</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th rowspan=\"2\" valign=\"top\">male</th>\n",
              "      <th>(0, 18]</th>\n",
              "      <td>0.800000</td>\n",
              "      <td>0.600000</td>\n",
              "      <td>0.215686</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>(18, 80]</th>\n",
              "      <td>0.375000</td>\n",
              "      <td>0.071429</td>\n",
              "      <td>0.133663</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>"
            ],
            "text/plain": [
              "class               First    Second     Third\n",
              "sex    age                                   \n",
              "female (0, 18]   0.909091  1.000000  0.511628\n",
              "       (18, 80]  0.972973  0.900000  0.423729\n",
              "male   (0, 18]   0.800000  0.600000  0.215686\n",
              "       (18, 80]  0.375000  0.071429  0.133663"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 199
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "nT46ns4jj6Wi",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 295
        },
        "outputId": "ce0189d8-aed6-4b62-f0d5-7b7d16b4953d"
      },
      "source": [
        "#Plot the Prices Paid Of Each Class\n",
        "  plt.scatter(titanic['fare'], titanic['class'],  color = 'purple', label='Passenger Paid')\n",
        "  plt.ylabel('Class')\n",
        "  plt.xlabel('Price / Fare')\n",
        "  plt.title('Price Of Each Class')\n",
        "  plt.legend()\n",
        "  plt.show()"
      ],
      "execution_count": 200,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "1Lf2sTe7RbU_",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 295
        },
        "outputId": "000dbe3c-f2c3-4031-b89b-e6025be0735f"
      },
      "source": [
        "#Count the empty (NaN, NAN, na) values in each column\n",
        "titanic.isna().sum()"
      ],
      "execution_count": 201,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "survived         0\n",
              "pclass           0\n",
              "sex              0\n",
              "age            177\n",
              "sibsp            0\n",
              "parch            0\n",
              "fare             0\n",
              "embarked         2\n",
              "class            0\n",
              "who              0\n",
              "adult_male       0\n",
              "deck           688\n",
              "embark_town      2\n",
              "alive            0\n",
              "alone            0\n",
              "dtype: int64"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 201
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "BxtoBhOVssiL",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 1000
        },
        "outputId": "ac9d7c5e-e8e3-472c-a62c-a7daa5601d39"
      },
      "source": [
        "#Look at all of the values in each column & get a count\n",
        "for val in titanic:\n",
        "  print(titanic[val].value_counts())\n",
        "  print()"
      ],
      "execution_count": 202,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "0    549\n",
            "1    342\n",
            "Name: survived, dtype: int64\n",
            "\n",
            "3    491\n",
            "1    216\n",
            "2    184\n",
            "Name: pclass, dtype: int64\n",
            "\n",
            "male      577\n",
            "female    314\n",
            "Name: sex, dtype: int64\n",
            "\n",
            "24.00    30\n",
            "22.00    27\n",
            "18.00    26\n",
            "19.00    25\n",
            "30.00    25\n",
            "28.00    25\n",
            "21.00    24\n",
            "25.00    23\n",
            "36.00    22\n",
            "29.00    20\n",
            "32.00    18\n",
            "27.00    18\n",
            "35.00    18\n",
            "26.00    18\n",
            "16.00    17\n",
            "31.00    17\n",
            "20.00    15\n",
            "33.00    15\n",
            "23.00    15\n",
            "34.00    15\n",
            "39.00    14\n",
            "17.00    13\n",
            "42.00    13\n",
            "40.00    13\n",
            "45.00    12\n",
            "38.00    11\n",
            "50.00    10\n",
            "2.00     10\n",
            "4.00     10\n",
            "47.00     9\n",
            "         ..\n",
            "71.00     2\n",
            "59.00     2\n",
            "63.00     2\n",
            "0.83      2\n",
            "30.50     2\n",
            "70.00     2\n",
            "57.00     2\n",
            "0.75      2\n",
            "13.00     2\n",
            "10.00     2\n",
            "64.00     2\n",
            "40.50     2\n",
            "32.50     2\n",
            "45.50     2\n",
            "20.50     1\n",
            "24.50     1\n",
            "0.67      1\n",
            "14.50     1\n",
            "0.92      1\n",
            "74.00     1\n",
            "34.50     1\n",
            "80.00     1\n",
            "12.00     1\n",
            "36.50     1\n",
            "53.00     1\n",
            "55.50     1\n",
            "70.50     1\n",
            "66.00     1\n",
            "23.50     1\n",
            "0.42      1\n",
            "Name: age, Length: 88, dtype: int64\n",
            "\n",
            "0    608\n",
            "1    209\n",
            "2     28\n",
            "4     18\n",
            "3     16\n",
            "8      7\n",
            "5      5\n",
            "Name: sibsp, dtype: int64\n",
            "\n",
            "0    678\n",
            "1    118\n",
            "2     80\n",
            "5      5\n",
            "3      5\n",
            "4      4\n",
            "6      1\n",
            "Name: parch, dtype: int64\n",
            "\n",
            "8.0500      43\n",
            "13.0000     42\n",
            "7.8958      38\n",
            "7.7500      34\n",
            "26.0000     31\n",
            "10.5000     24\n",
            "7.9250      18\n",
            "7.7750      16\n",
            "26.5500     15\n",
            "0.0000      15\n",
            "7.2292      15\n",
            "7.8542      13\n",
            "8.6625      13\n",
            "7.2500      13\n",
            "7.2250      12\n",
            "16.1000      9\n",
            "9.5000       9\n",
            "24.1500      8\n",
            "15.5000      8\n",
            "56.4958      7\n",
            "52.0000      7\n",
            "14.5000      7\n",
            "14.4542      7\n",
            "69.5500      7\n",
            "7.0500       7\n",
            "31.2750      7\n",
            "46.9000      6\n",
            "30.0000      6\n",
            "7.7958       6\n",
            "39.6875      6\n",
            "            ..\n",
            "7.1417       1\n",
            "42.4000      1\n",
            "211.5000     1\n",
            "12.2750      1\n",
            "61.1750      1\n",
            "8.4333       1\n",
            "51.4792      1\n",
            "7.8875       1\n",
            "8.6833       1\n",
            "7.5208       1\n",
            "34.6542      1\n",
            "28.7125      1\n",
            "25.5875      1\n",
            "7.7292       1\n",
            "12.2875      1\n",
            "8.6542       1\n",
            "8.7125       1\n",
            "61.3792      1\n",
            "6.9500       1\n",
            "9.8417       1\n",
            "8.3000       1\n",
            "13.7917      1\n",
            "9.4750       1\n",
            "13.4167      1\n",
            "26.3875      1\n",
            "8.4583       1\n",
            "9.8375       1\n",
            "8.3625       1\n",
            "14.1083      1\n",
            "17.4000      1\n",
            "Name: fare, Length: 248, dtype: int64\n",
            "\n",
            "S    644\n",
            "C    168\n",
            "Q     77\n",
            "Name: embarked, dtype: int64\n",
            "\n",
            "Third     491\n",
            "First     216\n",
            "Second    184\n",
            "Name: class, dtype: int64\n",
            "\n",
            "man      537\n",
            "woman    271\n",
            "child     83\n",
            "Name: who, dtype: int64\n",
            "\n",
            "True     537\n",
            "False    354\n",
            "Name: adult_male, dtype: int64\n",
            "\n",
            "C    59\n",
            "B    47\n",
            "D    33\n",
            "E    32\n",
            "A    15\n",
            "F    13\n",
            "G     4\n",
            "Name: deck, dtype: int64\n",
            "\n",
            "Southampton    644\n",
            "Cherbourg      168\n",
            "Queenstown      77\n",
            "Name: embark_town, dtype: int64\n",
            "\n",
            "no     549\n",
            "yes    342\n",
            "Name: alive, dtype: int64\n",
            "\n",
            "True     537\n",
            "False    354\n",
            "Name: alone, dtype: int64\n",
            "\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "UiBE8lhEcA4V",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "#DROP REDUNDENT COLUMNS & REMOVE EMPTY ROWS\n",
        "#embark_town = embarked\n",
        "#alive = survived\n",
        "#class = pclass\n",
        "\n",
        "#alone = (sibsp or parch) meaning if you have siblings/spouses or parents/children on board than you are not alone else you are\n",
        "#adult_male = (male and age >= 18) meaning if you are a male age 18 or older than true else false, same goes for the who column which tracks only adult males, adult females, and children\n",
        "#who = (Males age >= 18, Females age >= 18, children age < 18)\n",
        "\n",
        "#deck missing 688 / 891 = 77.22% of the data\n",
        "\n",
        "\n",
        "\n",
        "# Drop / remove the columns\n",
        "titanic = titanic.drop(['deck', 'embark_town', 'alive', 'class', 'alone', 'adult_male', 'who'], axis=1)\n",
        "\n",
        "#Drop/remove the rows with missing values\n",
        "titanic = titanic.dropna(subset =['embarked', 'age'])\n",
        "\n",
        "#Note: Could've used .fillna() to fill in missing values for age like with the average."
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "Nu79cCwncOPE",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 35
        },
        "outputId": "bb69413b-4dde-44b6-a19a-5dd91937c6a7"
      },
      "source": [
        "#Count the NEW number of rows and columns in the data set\n",
        "titanic.shape"
      ],
      "execution_count": 204,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "(712, 8)"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 204
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "jbNYby8JUDV2",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 173
        },
        "outputId": "51d4f75f-a64e-4a10-8ab6-234d9328dcd0"
      },
      "source": [
        "#Look at the data types to see which columns need to be transformed / encoded to a number\n",
        "titanic.dtypes"
      ],
      "execution_count": 205,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "survived      int64\n",
              "pclass        int64\n",
              "sex          object\n",
              "age         float64\n",
              "sibsp         int64\n",
              "parch         int64\n",
              "fare        float64\n",
              "embarked     object\n",
              "dtype: object"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 205
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "iYpGlt5zxpbq",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 52
        },
        "outputId": "3107b30b-87a9-4505-998f-6ae9e4f1a351"
      },
      "source": [
        "#Print the unique values in the columns\n",
        "print(titanic['sex'].unique())\n",
        "print(titanic['embarked'].unique())"
      ],
      "execution_count": 206,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "['male' 'female']\n",
            "['S' 'C' 'Q']\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "3gPqgYmzXyUW",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 52
        },
        "outputId": "a98e086f-1231-41c5-dfc3-6a84f3282c67"
      },
      "source": [
        "#Encoding categorical data values (Transforming object data types to integers)\n",
        "from sklearn.preprocessing import LabelEncoder\n",
        "labelencoder = LabelEncoder()\n",
        "\n",
        "#Encode sex column\n",
        "titanic.iloc[:,2]= labelencoder.fit_transform(titanic.iloc[:,2].values)\n",
        "#print(labelencoder.fit_transform(titanic.iloc[:,2].values))\n",
        "\n",
        "#Encode embarked\n",
        "titanic.iloc[:,7]= labelencoder.fit_transform(titanic.iloc[:,7].values)\n",
        "#print(labelencoder.fit_transform(titanic.iloc[:,7].values))\n",
        "\n",
        "#Print the NEW unique values in the columns\n",
        "print(titanic['sex'].unique())\n",
        "print(titanic['embarked'].unique())\n"
      ],
      "execution_count": 207,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "[1 0]\n",
            "[2 0 1]\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "sVZ3lyNGllki",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 173
        },
        "outputId": "16676314-4027-4148-ce65-e0ac64c28cbe"
      },
      "source": [
        "#Look at the NEW data types\n",
        "titanic.dtypes"
      ],
      "execution_count": 208,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "survived      int64\n",
              "pclass        int64\n",
              "sex           int64\n",
              "age         float64\n",
              "sibsp         int64\n",
              "parch         int64\n",
              "fare        float64\n",
              "embarked      int64\n",
              "dtype: object"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 208
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "v60hkXRTVUM1",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "#Split the data into independent 'X' and dependent 'Y' variables\n",
        "X = titanic.iloc[:, 1:8].values #Notice I started from index  1 to 7, essentially removing the first column\n",
        "Y = titanic.iloc[:, 0].values #Get the target variable"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "-_7Tbq4GVm21",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "# Split the dataset into 80% Training set and 20% Testing set\n",
        "from sklearn.model_selection import train_test_split\n",
        "X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size = 0.2, random_state = 0)"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "5iVXWjpP5Dwp",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "# Scale the data to bring all features to the same level of magnitude\n",
        "# This means the data will be within a specific range for example 0 -100 or 0 - 1\n",
        "\n",
        "#Feature Scaling\n",
        "from sklearn.preprocessing import StandardScaler\n",
        "sc = StandardScaler()\n",
        "X_train = sc.fit_transform(X_train)\n",
        "X_test = sc.transform(X_test)"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "fsOr8ZrK5Fic",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "#Create a function within many Machine Learning Models\n",
        "def models(X_train,Y_train):\n",
        "  \n",
        "  #Using Logistic Regression Algorithm to the Training Set\n",
        "  from sklearn.linear_model import LogisticRegression\n",
        "  log = LogisticRegression(random_state = 0)\n",
        "  log.fit(X_train, Y_train)\n",
        "  \n",
        "  #Using KNeighborsClassifier Method of neighbors class to use Nearest Neighbor algorithm\n",
        "  from sklearn.neighbors import KNeighborsClassifier\n",
        "  knn = KNeighborsClassifier(n_neighbors = 5, metric = 'minkowski', p = 2)\n",
        "  knn.fit(X_train, Y_train)\n",
        "\n",
        "  #Using SVC method of svm class to use Support Vector Machine Algorithm\n",
        "  from sklearn.svm import SVC\n",
        "  svc_lin = SVC(kernel = 'linear', random_state = 0)\n",
        "  svc_lin.fit(X_train, Y_train)\n",
        "\n",
        "  #Using SVC method of svm class to use Kernel SVM Algorithm\n",
        "  from sklearn.svm import SVC\n",
        "  svc_rbf = SVC(kernel = 'rbf', random_state = 0)\n",
        "  svc_rbf.fit(X_train, Y_train)\n",
        "\n",
        "  #Using GaussianNB method of naïve_bayes class to use Naïve Bayes Algorithm\n",
        "  from sklearn.naive_bayes import GaussianNB\n",
        "  gauss = GaussianNB()\n",
        "  gauss.fit(X_train, Y_train)\n",
        "\n",
        "  #Using DecisionTreeClassifier of tree class to use Decision Tree Algorithm\n",
        "  from sklearn.tree import DecisionTreeClassifier\n",
        "  tree = DecisionTreeClassifier(criterion = 'entropy', random_state = 0)\n",
        "  tree.fit(X_train, Y_train)\n",
        "\n",
        "  #Using RandomForestClassifier method of ensemble class to use Random Forest Classification algorithm\n",
        "  from sklearn.ensemble import RandomForestClassifier\n",
        "  forest = RandomForestClassifier(n_estimators = 10, criterion = 'entropy', random_state = 0)\n",
        "  forest.fit(X_train, Y_train)\n",
        "  \n",
        "  #print model accuracy on the training data.\n",
        "  print('[0]Logistic Regression Training Accuracy:', log.score(X_train, Y_train))\n",
        "  print('[1]K Nearest Neighbor Training Accuracy:', knn.score(X_train, Y_train))\n",
        "  print('[2]Support Vector Machine (Linear Classifier) Training Accuracy:', svc_lin.score(X_train, Y_train))\n",
        "  print('[3]Support Vector Machine (RBF Classifier) Training Accuracy:', svc_rbf.score(X_train, Y_train))\n",
        "  print('[4]Gaussian Naive Bayes Training Accuracy:', gauss.score(X_train, Y_train))\n",
        "  print('[5]Decision Tree Classifier Training Accuracy:', tree.score(X_train, Y_train))\n",
        "  print('[6]Random Forest Classifier Training Accuracy:', forest.score(X_train, Y_train))\n",
        "  \n",
        "  return log, knn, svc_lin, svc_rbf, gauss, tree, forest"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "J1pANMr25LGt",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 193
        },
        "outputId": "30de191e-a98d-47b5-d518-9a17438b58db"
      },
      "source": [
        "#Get and train all of the models\n",
        "model = models(X_train,Y_train)"
      ],
      "execution_count": 213,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "[0]Logistic Regression Training Accuracy: 0.7978910369068541\n",
            "[1]K Nearest Neighbor Training Accuracy: 0.8664323374340949\n",
            "[2]Support Vector Machine (Linear Classifier) Training Accuracy: 0.7768014059753954\n",
            "[3]Support Vector Machine (RBF Classifier) Training Accuracy: 0.8506151142355008\n",
            "[4]Gaussian Naive Bayes Training Accuracy: 0.8031634446397188\n",
            "[5]Decision Tree Classifier Training Accuracy: 0.9929701230228472\n",
            "[6]Random Forest Classifier Training Accuracy: 0.9753954305799648\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "stream",
          "text": [
            "/usr/local/lib/python3.6/dist-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
            "  FutureWarning)\n"
          ],
          "name": "stderr"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "u8t41Ev_5S1T",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 503
        },
        "outputId": "f133bc93-4447-4d96-a9cd-08a655a363e6"
      },
      "source": [
        "#Show the confusion matrix and accuracy for all of the models on the test data\n",
        "#Classification accuracy is the ratio of correct predictions to total predictions made.\n",
        "from sklearn.metrics import confusion_matrix\n",
        "for i in range(len(model)):\n",
        "  cm = confusion_matrix(Y_test, model[i].predict(X_test))\n",
        "\n",
        "  #extracting true_positives, false_positives, true_negatives, false_negatives\n",
        "  TN, FP, FN, TP = confusion_matrix(Y_test, model[i].predict(X_test)).ravel()\n",
        "\n",
        "  print(cm)\n",
        "  print('Model[{}] Testing Accuracy = \"{} !\"'.format(i,  (TP + TN) / (TP + TN + FN + FP)))\n",
        "  print()# Print a new line"
      ],
      "execution_count": 214,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "[[73  9]\n",
            " [18 43]]\n",
            "Model[0] Testing Accuracy = \"0.8111888111888111 !\"\n",
            "\n",
            "[[71 11]\n",
            " [20 41]]\n",
            "Model[1] Testing Accuracy = \"0.7832167832167832 !\"\n",
            "\n",
            "[[70 12]\n",
            " [18 43]]\n",
            "Model[2] Testing Accuracy = \"0.7902097902097902 !\"\n",
            "\n",
            "[[75  7]\n",
            " [22 39]]\n",
            "Model[3] Testing Accuracy = \"0.7972027972027972 !\"\n",
            "\n",
            "[[69 13]\n",
            " [23 38]]\n",
            "Model[4] Testing Accuracy = \"0.7482517482517482 !\"\n",
            "\n",
            "[[60 22]\n",
            " [10 51]]\n",
            "Model[5] Testing Accuracy = \"0.7762237762237763 !\"\n",
            "\n",
            "[[67 15]\n",
            " [13 48]]\n",
            "Model[6] Testing Accuracy = \"0.8041958041958042 !\"\n",
            "\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "JJMJ6urgrEAX",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 294
        },
        "outputId": "0e7c433e-f072-44ce-d9d4-33474bba1a1c"
      },
      "source": [
        "#Get the importance of the features\n",
        "forest = model[6]\n",
        "importances = pd.DataFrame({'feature':titanic.iloc[:, 1:8].columns,'importance':np.round(forest.feature_importances_,3)})\n",
        "importances = importances.sort_values('importance',ascending=False).set_index('feature')\n",
        "importances"
      ],
      "execution_count": 215,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>importance</th>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>feature</th>\n",
              "      <th></th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>age</th>\n",
              "      <td>0.300</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>fare</th>\n",
              "      <td>0.296</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>sex</th>\n",
              "      <td>0.183</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>pclass</th>\n",
              "      <td>0.098</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>sibsp</th>\n",
              "      <td>0.050</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>parch</th>\n",
              "      <td>0.044</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>embarked</th>\n",
              "      <td>0.030</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>"
            ],
            "text/plain": [
              "          importance\n",
              "feature             \n",
              "age            0.300\n",
              "fare           0.296\n",
              "sex            0.183\n",
              "pclass         0.098\n",
              "sibsp          0.050\n",
              "parch          0.044\n",
              "embarked       0.030"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 215
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "zu9g1yTErpNF",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 341
        },
        "outputId": "80bca9a4-e5bc-4429-84d4-54f4cb7da902"
      },
      "source": [
        "#Visualize the importance\n",
        "importances.plot.bar()"
      ],
      "execution_count": 216,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "<matplotlib.axes._subplots.AxesSubplot at 0x7f696d5ca5f8>"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 216
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "oI5hKHgO68xr",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 173
        },
        "outputId": "022dc671-4aea-45a7-8350-03ad65288f5e"
      },
      "source": [
        "#Print Prediction of Random Forest Classifier model\n",
        "pred = model[6].predict(X_test)\n",
        "print(pred)\n",
        "\n",
        "#Print a space\n",
        "print()\n",
        "\n",
        "#Print the actual values\n",
        "print(Y_test)"
      ],
      "execution_count": 217,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "[1 1 1 0 0 0 1 0 0 1 1 1 1 0 0 1 0 1 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1\n",
            " 1 1 0 0 0 1 0 1 0 1 0 0 1 1 0 1 0 1 0 0 1 1 1 0 0 0 1 0 0 1 0 1 1 1 1 1 1\n",
            " 0 0 1 0 0 0 0 1 0 1 1 0 0 0 1 0 0 0 1 1 1 0 1 1 0 0 0 1 0 0 0 0 1 0 0 0 1\n",
            " 0 1 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 1 1 1 1 1 0 0 0 0 0 1]\n",
            "\n",
            "[0 0 1 0 0 0 1 0 0 0 1 1 1 0 0 1 0 1 1 0 0 1 1 1 0 0 0 0 1 0 0 0 0 1 1 0 1\n",
            " 1 1 1 1 1 0 0 0 0 1 0 0 1 1 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 1 1 0 1 0 1 1 1\n",
            " 0 0 1 1 0 0 0 1 1 1 1 0 0 0 1 0 0 0 1 1 1 0 1 1 0 1 0 1 0 0 0 0 1 0 0 0 0\n",
            " 1 1 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 1]\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "h0ep9gIu7pPq",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 52
        },
        "outputId": "5ab2d4ac-bdf2-4cf1-f2ed-8bac97e46b67"
      },
      "source": [
        "# Given the data points would I have survived ? \n",
        "# Most likely I would've been in 3rd class (pclass = 3), Im a male (sex = 1), age is older than 18 (age = 21), no siblings onboard (sibsp = 0), \n",
        "#no parents or children (parch =0), fare the minimum price (fare = 0), embarked queens town = (embarked =1)\n",
        "my_survival = [[3,1,21,0, 0, 0, 1]]\n",
        "\n",
        "#uncomment to see all of the models predictions\n",
        "#for i in range(len(model)):\n",
        "#  pred = model[i].predict(my_survival)\n",
        "#  print(pred)\n",
        "\n",
        "\n",
        "#Print Prediction of Random Forest Classifier model\n",
        "pred = model[6].predict(my_survival)\n",
        "print(pred)\n",
        "\n",
        "if pred == 0:\n",
        "  print('Oh no! You didn’t make it')\n",
        "else:\n",
        "  print('Nice! You survived')"
      ],
      "execution_count": 218,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "[0]\n",
            "Oh no! You didn’t make it\n"
          ],
          "name": "stdout"
        }
      ]
    }
  ]
}
